#ifndef DBSTORAGE_CREATE_PROJECT_STORAGE_COMMAND_HPP
#define DBSTORAGE_CREATE_PROJECT_STORAGE_COMMAND_HPP

#include "DbStorage/DbStorageCmd.hpp"

namespace Model { class Project; }

namespace DbStorage
{

/// @ingroup DbStorage
/// @brief It implements the insertion of a new project to the database.
class CreateProjectStorageCmd: public DbStorageCmd
{
public:
	/// @brief It initializes the command.
	/// @param rSubject the project to be stored.
	/// @param dbConnection the database connection to be used for storage.
	CreateProjectStorageCmd( Model::Project& rSubject, CaseDB::Connection& dbConnection);

	/// @brief It stores the project to the database.
	/// 
	/// The insertion generates a primary key which will be set to the stored project object as the stored identifier.
	virtual void execute();
};
	
} // namespace DbStorage

#endif // DBSTORAGE_CREATE_PROJECT_STORAGE_COMMAND_HPP
